/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package main;

import data.Professor;
import data.Room;
import data.Student;
import data.TimeSlot;

/**
 *
 * @author daz
 */
public class Solution {

    private int[] jury;
    private int[] reviews;
    private int[][] professorTime;
    private int[][] professorDomain;
    private int numberJuryMembers = 5;
    private int numberTimeSlot = 3;
    private int numberProfessorDomains = 5;
    private int studentId;
    private int roomId;
    private int timeId;
    private int supervisor1;
    private int supervisor2;
    private int numberReviewerMustPresent = 2;
    private int numberInHusts;
    private int domain;
    private Student student;
    private Room room;
    private TimeSlot timeSlot;
    private Professor[] juryMembers;
    private int numberReviewers;

    public Solution() {
    }

    public Solution(int studentId) {
        this.studentId = studentId;
        jury = new int[numberJuryMembers];
        reviews = new int[numberReviewerMustPresent];
        professorTime = new int[numberJuryMembers][numberTimeSlot];
        professorDomain = new int[numberJuryMembers][numberProfessorDomains];
    }

    public Solution(Student student, Room room, TimeSlot timeSlot, Professor[] juryMember) {
        this.student = student;
        this.room = room;
        this.timeSlot = timeSlot;
        this.juryMembers = juryMember;
        numberJuryMembers = juryMember.length;
        jury = new int[numberJuryMembers];
        numberInHusts = 0;
        for (int i = 0; i < numberJuryMembers; i++) {
            jury[i] = juryMember[i].getId();
            if (juryMembers[i].getIsHust() == 1) {
                numberInHusts++;
            }
        }
        numberReviewers = 2;
        reviews = new int[numberReviewers];
    }

    public int[] getJury() {
        return jury;
    }

    public int getSupervisor() {
        return this.student.getSupervisor();
    }

    public int getSupervisor2() {
        return supervisor2;
    }

    public int getNumberJuryMembers() {
        return numberJuryMembers;
    }

    public int getNumberReviewerMustPresent() {
        return numberReviewerMustPresent;
    }

    public int[] getReviews() {
        return reviews;
    }

    public int getRoomId() {
        return room.getId();
    }

    public int getTimeId() {
        return timeSlot.getId();
    }

    public int getNumberInHusts() {
        return numberInHusts;
    }

    public int[] getProfessorTimeAvailable(int professorId) {
        return professorTime[professorId];
    }

    public int getDomain() {
        return domain;
    }

    public int[] getProfessorDomain(int professorId) {
        return professorDomain[professorId];
    }

    public int getReviewers1() {
        return this.student.getReviewer1();

    }

    public int getReviewers2() {
        return this.student.getReviewer2();
    }
}
